# ans = 0
# import sys
# sys.setrecursionlimit(10**6)
# def dfs(x, score, k):
#     global ans
#     # x: 第x题; score: 得分; k: 对错
#     if k == 0:
#         score = 0  # 答错了，归零
#     else:
#         score += 10  # 答对了
#         if score == 100:
#             return  # 100分不是符合要求的答题情况，所以ans不用加1
#
#     if score == 70:
#         ans += 1  # 70分，答案加1
#
#     if x == 30:
#         return  # 共30题
#
#     dfs(x + 1, score, 0)  # 继续做题。0: 答错了
#     dfs(x + 1, score, 1)  # 继续做题。1：答对了
#
# dfs(0, 0, 0)
# print(ans)

f=[[0 for i in range(35)]for j in range(35)]
f[0][0]=1
for i in range(1,31):
    # 当前题答错的情况：得分归零，所以等于前i-1题所有可能情况的总和
    f[i][0]=sum(f[i-1])
    # 当前题答对的情况：得分增加10分（即j增加1）
    for j in range(1,10):  # j代表得分的十位数（0-9对应0-90分）
        f[i][j]=f[i-1][j-1]
ans=0
for i in f:
    ans += i[7]
print(ans)